package com.bbx.taxi.client.Util;

import com.bbx.androidapi.util.DensityUtil;

import android.content.Context;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.TypedValue;
import android.view.View;
import android.widget.TextView;

/** 
 * @Path com.bbx.taxi.client.Util.TextViewAdaption.java
 * @Author 严旭文
 * @Date 2016-5-5 下午4:32:13
 * @Company 蓝海（福建）信息技术有限公司
 * @Description
 */
public class TextViewAdaption {
    public static void onAdaption(Context context,TextView textview,int width,int textsize){
    	String text=textview.getText().toString();
    	int textWidth=width;
        if (textWidth > 0) {
            Paint testPaint = new Paint();
            testPaint.set(textview.getPaint());
            testPaint.setTextSize(textsize);
            //获得当前TextView的有效宽度
            int availableWidth = textWidth - textview.getPaddingLeft()
                    - textview.getPaddingRight();
            float[] widths = new float[text.length()];
            Rect rect = new Rect();
            testPaint.getTextBounds(text, 0, text.length(), rect);
            //所有字符串所占像素宽度
            int textWidths = rect.width();
            float cTextSize = testPaint.getTextSize();//这个返回的单位为px
            while(textWidths >= availableWidth-DensityUtil.dip2px(context, 7)){//10是为了减少误差
                cTextSize = cTextSize - 1;
                testPaint.setTextSize(cTextSize);//这里传入的单位是px
                 rect = new Rect();
                testPaint.getTextBounds(text, 0, text.length(), rect);
                //所有字符串所占像素宽度
                 textWidths = rect.width();
            }
            textview.setTextSize(TypedValue.COMPLEX_UNIT_PX, cTextSize);//这里制定传入的单位是px
            textview.setText(text);
        }
    }
}
